package com.xasxt.book.app.service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import com.xasxt.book.app.dao.BookDaoMapper;
import com.xasxt.book.app.dao.OrderDaoMapper;
import com.xasxt.book.app.entity.Book;
import com.xasxt.book.app.entity.Order;
/**
 * 功能:
 * 开发者:虫儿飞
 * 开发时间:2018年5月19日 下午2:05:32
 */
@Service
@Transactional(isolation=Isolation.DEFAULT,
rollbackFor=Exception.class,propagation=Propagation.REQUIRED)
public class OrderService {
	@Autowired
	private OrderDaoMapper   orderDaoMapper;

	@Autowired
	private  BookDaoMapper  bookDaoMapper;


	/**
	 * 
	 * 功能:查看客户下单信息
	 * 开发者:虫儿飞
	 * 开发时间:2018年6月2日 上午9:18:39
	 * @param map
	 * @return
	 */
	public List<Order>findOrderWithPage(Map<String,Object>map){
		return orderDaoMapper.findOrderWithPage(map);
	}

	/**
	 * 
	 * 功能:统计下单记录数
	 * 开发者:虫儿飞
	 * 开发时间:2018年6月2日 上午9:18:56
	 * @param map
	 * @return
	 */

	public 	int getOrderCount(Map<String,Object>map) {
		return orderDaoMapper.getOrderCount(map);
	}
	/**
	 * 
	 * 功能:客户下单
	 * 开发者:虫儿飞
	 * 开发时间:2018年6月2日 上午9:18:27
	 * @param order
	 * @return
	 */
	public boolean   saveOrderInfo(Order order) {
		Book book=bookDaoMapper.getBookInfo(order.getbId());
		if(book!=null) {
			int quantity=Integer.parseInt(book.getQuantity())-Integer.parseInt(order.getQuantity());
			book.setQuantity(String.valueOf(quantity));
		}
		bookDaoMapper.updateBookInfo(book);
		return orderDaoMapper.saveOrderInfo(order)!=0?true:false;
	}
	/**
	 * 
	 * 功能:购买
	 * 开发者:虫儿飞
	 * 开发时间:2018年6月2日 上午10:11:39
	 * @param 
	 * @return
	 */

	public double    buyBooks(int uid) {
		Map<String,Object>map=new HashMap<String,Object>();
		map.put("uId", uid);
		map.put("buyTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
		orderDaoMapper.updateBuyOrderInfo(map);
		return orderDaoMapper.buyBooks();
	}

}
